package com.itbaizhan;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
/*ServletConfig对象
ServletConfig对象对应web.xml文件中的节点。当Tomcat初始化一个Servlet
时，会将该Servlet的配置信息，封装到一个ServletConfig对象中。
我们可以通过该对象读取节点中的配置信息

1<servlet>
2    <servlet-name>servletName</servlet-name>
3    <servlet-class>servletClass</servlet-class>
4    <init-param>
5        <param-name>key</param-name>
6        <param-value>value</param-value>
7    </init-param>
8</servlet>

servletConfig.getInitParameter("key")
该方法可以读取web.xml文件中标签中标签中的配置信息。(知道key时运用)

ServletConfig.getInitParameterNames()
该方法可以读取web.xml文件中当前标签中所有标签中的值。
(key与value都不知道时就用这获取所有的key值）*/

/*使用ServletConfig 读取servlet的配置信息*/
public class GetConfigServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取ServletConfig对象
        ServletConfig servletConfig = this.getServletConfig();
        //不知道有多小个key与value时，用getInitParameterNames()
        //获取所有param-name的值
        Enumeration<String> initParameterNames =servletConfig.getInitParameterNames();
        //输出响应
        PrintWriter pw = resp.getWriter();
        while (initParameterNames.hasMoreElements()){
            //遍历每一个param-name
            String name = initParameterNames.nextElement();
            //获取对应的value
            String value = servletConfig.getInitParameter(name);
            pw.println("name: "+name+"=value: "+value);
        }
        pw.flush();
        pw.close();
    }
}
